/*
 * Desenvolvido para a disciplina Desenvolvimento de Aplicações Web.
 * Curso Tecnologia em Telematica.
 * Instituto Federal de Educação, Ciência e Tecnologia.
 */
package core;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import sql.AlunoException;

import core.Curso;

/**
 * SAW - Sistema Academica Web.
 * Classe de criação do objeto Aluno com as informações básicas: nome, matricula e lista de cursos que participa.
 *
 * @author Antonio Carlos Trajano de Oliveira, antonio.c.trajano@gmail.com
 * @author Icaro Vasconcelos Souza, icaroswim@gmail.com
 * @version 1.0
 */
public class Aluno implements Pessoa {
	
	private final int MAX_CURSO = 3;
	
	private String nome;
	private String matricula;
	private ArrayList<Curso> lstCurso;

	public Aluno() {
		lstCurso = new ArrayList<Curso>( MAX_CURSO );
	}
	
	public Aluno( String nome, String matricula ) {
		this();
		this.nome = nome;
		this.matricula = matricula;
	}

	@Override
	public void setNome(String nomePessoa) {
		this.nome = nomePessoa;
	}

	@Override
	public void setMatricula(String matricula) {
		this.matricula = matricula;
	}

	@Override
	public String getNome() {
		return this.nome;
	}

	@Override
	public String getMatricula() {
		return this.matricula;
	}
	
	public void addCurso( Curso novoCurso ) {
		lstCurso.add(novoCurso);
	}
	
	public Curso getCurso( int index ) throws AlunoException {
		if( index < 0 || index > 2 ) {
			throw new AlunoException("Índice de entrada de Curso inválido.");
		}
		if( index >= lstCurso.size() ) {
			return null;
		}
		return lstCurso.get(index);
	}
	
	public void setCurso( int index, Curso novoCurso ) throws AlunoException {
		if( index < 0 || index > 2 ) {
			throw new AlunoException("Índice de entrada de Curso inválido.");
		}
		lstCurso.add( index, novoCurso );
	}
	
}
